{
 "metadata": {
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3-final"
  },
  "orig_nbformat": 2,
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3",
   "language": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2,
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 360x360 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"306.677344pt\" version=\"1.1\" viewBox=\"0 0 324.254687 306.677344\" width=\"324.254687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 306.677344 \nL 324.254687 306.677344 \nL 324.254687 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 30.103125 282.799219 \nL 309.103125 282.799219 \nL 309.103125 10.999219 \nL 30.103125 10.999219 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"mc7762772ac\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_2\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 -3.5 \n\" id=\"m8ea8c84d0e\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0.0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n      </defs>\n      <g transform=\"translate(22.151563 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.603125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.603125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 0.5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(68.651563 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"123.103125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"123.103125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 1.0 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(115.151563 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"169.603125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"169.603125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 1.5 -->\n      <g transform=\"translate(161.651563 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"216.103125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"216.103125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 2.0 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(208.151563 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"262.603125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"262.603125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 2.5 -->\n      <g transform=\"translate(254.651562 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_7\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#mc7762772ac\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#m8ea8c84d0e\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 3.0 -->\n      <defs>\n       <path d=\"M 40.578125 39.3125 \nQ 47.65625 37.796875 51.625 33 \nQ 55.609375 28.21875 55.609375 21.1875 \nQ 55.609375 10.40625 48.1875 4.484375 \nQ 40.765625 -1.421875 27.09375 -1.421875 \nQ 22.515625 -1.421875 17.65625 -0.515625 \nQ 12.796875 0.390625 7.625 2.203125 \nL 7.625 11.71875 \nQ 11.71875 9.328125 16.59375 8.109375 \nQ 21.484375 6.890625 26.8125 6.890625 \nQ 36.078125 6.890625 40.9375 10.546875 \nQ 45.796875 14.203125 45.796875 21.1875 \nQ 45.796875 27.640625 41.28125 31.265625 \nQ 36.765625 34.90625 28.71875 34.90625 \nL 20.21875 34.90625 \nL 20.21875 43.015625 \nL 29.109375 43.015625 \nQ 36.375 43.015625 40.234375 45.921875 \nQ 44.09375 48.828125 44.09375 54.296875 \nQ 44.09375 59.90625 40.109375 62.90625 \nQ 36.140625 65.921875 28.71875 65.921875 \nQ 24.65625 65.921875 20.015625 65.03125 \nQ 15.375 64.15625 9.8125 62.3125 \nL 9.8125 71.09375 \nQ 15.4375 72.65625 20.34375 73.4375 \nQ 25.25 74.21875 29.59375 74.21875 \nQ 40.828125 74.21875 47.359375 69.109375 \nQ 53.90625 64.015625 53.90625 55.328125 \nQ 53.90625 49.265625 50.4375 45.09375 \nQ 46.96875 40.921875 40.578125 39.3125 \nz\n\" id=\"DejaVuSans-51\"/>\n      </defs>\n      <g transform=\"translate(301.151562 297.397656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-51\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_15\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m99c5b97e53\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_16\">\n      <defs>\n       <path d=\"M 0 0 \nL 3.5 0 \n\" id=\"ma889aee5a5\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"282.799219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 0.0 -->\n      <g transform=\"translate(7.2 286.598437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_17\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"237.499219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_18\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"237.499219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 0.5 -->\n      <g transform=\"translate(7.2 241.298437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_19\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"192.199219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_20\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"192.199219\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 1.0 -->\n      <g transform=\"translate(7.2 195.998437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_21\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"146.899219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_22\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"146.899219\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 1.5 -->\n      <g transform=\"translate(7.2 150.698437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_23\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"101.599219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_24\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"101.599219\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 2.0 -->\n      <g transform=\"translate(7.2 105.398437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_25\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"56.299219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_26\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"56.299219\"/>\n      </g>\n     </g>\n     <g id=\"text_13\">\n      <!-- 2.5 -->\n      <g transform=\"translate(7.2 60.098437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_7\">\n     <g id=\"line2d_27\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m99c5b97e53\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"line2d_28\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.103125\" xlink:href=\"#ma889aee5a5\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_14\">\n      <!-- 3.0 -->\n      <g transform=\"translate(7.2 14.798437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-51\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_29\">\n    <path clip-path=\"url(#pdab54f4306)\" d=\"M 123.103125 282.799219 \nL 123.103125 192.199219 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_30\">\n    <path clip-path=\"url(#pdab54f4306)\" d=\"M 123.103125 101.599219 \nL 216.103125 101.599219 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_31\">\n    <path clip-path=\"url(#pdab54f4306)\" d=\"M 216.103125 101.599219 \nL 216.103125 192.199219 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_32\">\n    <path clip-path=\"url(#pdab54f4306)\" d=\"M 216.103125 192.199219 \nL 309.103125 192.199219 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_33\">\n    <path clip-path=\"url(#pdab54f4306)\" d=\"M 76.603125 56.299219 \n\" style=\"fill:none;stroke:#008000;stroke-linecap:square;stroke-width:1.5;\"/>\n    <defs>\n     <path d=\"M 0 30 \nC 7.956093 30 15.587396 26.839011 21.213203 21.213203 \nC 26.839011 15.587396 30 7.956093 30 0 \nC 30 -7.956093 26.839011 -15.587396 21.213203 -21.213203 \nC 15.587396 -26.839011 7.956093 -30 0 -30 \nC -7.956093 -30 -15.587396 -26.839011 -21.213203 -21.213203 \nC -26.839011 -15.587396 -30 -7.956093 -30 0 \nC -30 7.956093 -26.839011 15.587396 -21.213203 21.213203 \nC -15.587396 26.839011 -7.956093 30 0 30 \nz\n\" id=\"mf7345f9c19\" style=\"stroke:#008000;\"/>\n    </defs>\n    <g clip-path=\"url(#pdab54f4306)\">\n     <use style=\"fill:#008000;stroke:#008000;\" x=\"76.603125\" xlink:href=\"#mf7345f9c19\" y=\"56.299219\"/>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 30.103125 282.799219 \nL 30.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 309.103125 282.799219 \nL 309.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 30.103125 282.799219 \nL 309.103125 282.799219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 30.103125 10.999219 \nL 309.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_15\">\n    <!-- S0 -->\n    <defs>\n     <path d=\"M 53.515625 70.515625 \nL 53.515625 60.890625 \nQ 47.90625 63.578125 42.921875 64.890625 \nQ 37.9375 66.21875 33.296875 66.21875 \nQ 25.25 66.21875 20.875 63.09375 \nQ 16.5 59.96875 16.5 54.203125 \nQ 16.5 49.359375 19.40625 46.890625 \nQ 22.3125 44.4375 30.421875 42.921875 \nL 36.375 41.703125 \nQ 47.40625 39.59375 52.65625 34.296875 \nQ 57.90625 29 57.90625 20.125 \nQ 57.90625 9.515625 50.796875 4.046875 \nQ 43.703125 -1.421875 29.984375 -1.421875 \nQ 24.8125 -1.421875 18.96875 -0.25 \nQ 13.140625 0.921875 6.890625 3.21875 \nL 6.890625 13.375 \nQ 12.890625 10.015625 18.65625 8.296875 \nQ 24.421875 6.59375 29.984375 6.59375 \nQ 38.421875 6.59375 43.015625 9.90625 \nQ 47.609375 13.234375 47.609375 19.390625 \nQ 47.609375 24.75 44.3125 27.78125 \nQ 41.015625 30.8125 33.5 32.328125 \nL 27.484375 33.5 \nQ 16.453125 35.6875 11.515625 40.375 \nQ 6.59375 45.0625 6.59375 53.421875 \nQ 6.59375 63.09375 13.40625 68.65625 \nQ 20.21875 74.21875 32.171875 74.21875 \nQ 37.3125 74.21875 42.625 73.28125 \nQ 47.953125 72.359375 53.515625 70.515625 \nz\n\" id=\"DejaVuSans-83\"/>\n    </defs>\n    <g transform=\"translate(67.705469 56.299219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n   </g>\n   <g id=\"text_16\">\n    <!-- S1 -->\n    <g transform=\"translate(160.705469 56.299219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-49\"/>\n    </g>\n   </g>\n   <g id=\"text_17\">\n    <!-- S2 -->\n    <g transform=\"translate(253.705469 56.299219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-50\"/>\n    </g>\n   </g>\n   <g id=\"text_18\">\n    <!-- S3 -->\n    <g transform=\"translate(67.705469 146.899219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n   </g>\n   <g id=\"text_19\">\n    <!-- S4 -->\n    <defs>\n     <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n    </defs>\n    <g transform=\"translate(160.705469 146.899219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-52\"/>\n    </g>\n   </g>\n   <g id=\"text_20\">\n    <!-- S5 -->\n    <g transform=\"translate(253.705469 146.899219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n   </g>\n   <g id=\"text_21\">\n    <!-- S6 -->\n    <defs>\n     <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n    </defs>\n    <g transform=\"translate(67.705469 237.499219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-54\"/>\n    </g>\n   </g>\n   <g id=\"text_22\">\n    <!-- S7 -->\n    <defs>\n     <path d=\"M 8.203125 72.90625 \nL 55.078125 72.90625 \nL 55.078125 68.703125 \nL 28.609375 0 \nL 18.3125 0 \nL 43.21875 64.59375 \nL 8.203125 64.59375 \nz\n\" id=\"DejaVuSans-55\"/>\n    </defs>\n    <g transform=\"translate(160.705469 237.499219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-55\"/>\n    </g>\n   </g>\n   <g id=\"text_23\">\n    <!-- S8 -->\n    <defs>\n     <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n    </defs>\n    <g transform=\"translate(253.705469 237.499219)scale(0.14 -0.14)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-56\"/>\n    </g>\n   </g>\n   <g id=\"text_24\">\n    <!-- start -->\n    <defs>\n     <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n     <path d=\"M 18.3125 70.21875 \nL 18.3125 54.6875 \nL 36.8125 54.6875 \nL 36.8125 47.703125 \nL 18.3125 47.703125 \nL 18.3125 18.015625 \nQ 18.3125 11.328125 20.140625 9.421875 \nQ 21.96875 7.515625 27.59375 7.515625 \nL 36.8125 7.515625 \nL 36.8125 0 \nL 27.59375 0 \nQ 17.1875 0 13.234375 3.875 \nQ 9.28125 7.765625 9.28125 18.015625 \nL 9.28125 47.703125 \nL 2.6875 47.703125 \nL 2.6875 54.6875 \nL 9.28125 54.6875 \nL 9.28125 70.21875 \nz\n\" id=\"DejaVuSans-116\"/>\n     <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n     <path d=\"M 41.109375 46.296875 \nQ 39.59375 47.171875 37.8125 47.578125 \nQ 36.03125 48 33.890625 48 \nQ 26.265625 48 22.1875 43.046875 \nQ 18.109375 38.09375 18.109375 28.8125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 20.953125 51.171875 25.484375 53.578125 \nQ 30.03125 56 36.53125 56 \nQ 37.453125 56 38.578125 55.875 \nQ 39.703125 55.765625 41.0625 55.515625 \nz\n\" id=\"DejaVuSans-114\"/>\n    </defs>\n    <g transform=\"translate(64.958594 74.419219)scale(0.1 -0.1)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-116\"/>\n     <use x=\"91.308594\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"152.587891\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"193.701172\" xlink:href=\"#DejaVuSans-116\"/>\n    </g>\n   </g>\n   <g id=\"text_25\">\n    <!-- goal -->\n    <defs>\n     <path d=\"M 45.40625 27.984375 \nQ 45.40625 37.75 41.375 43.109375 \nQ 37.359375 48.484375 30.078125 48.484375 \nQ 22.859375 48.484375 18.828125 43.109375 \nQ 14.796875 37.75 14.796875 27.984375 \nQ 14.796875 18.265625 18.828125 12.890625 \nQ 22.859375 7.515625 30.078125 7.515625 \nQ 37.359375 7.515625 41.375 12.890625 \nQ 45.40625 18.265625 45.40625 27.984375 \nz\nM 54.390625 6.78125 \nQ 54.390625 -7.171875 48.1875 -13.984375 \nQ 42 -20.796875 29.203125 -20.796875 \nQ 24.46875 -20.796875 20.265625 -20.09375 \nQ 16.0625 -19.390625 12.109375 -17.921875 \nL 12.109375 -9.1875 \nQ 16.0625 -11.328125 19.921875 -12.34375 \nQ 23.78125 -13.375 27.78125 -13.375 \nQ 36.625 -13.375 41.015625 -8.765625 \nQ 45.40625 -4.15625 45.40625 5.171875 \nL 45.40625 9.625 \nQ 42.625 4.78125 38.28125 2.390625 \nQ 33.9375 0 27.875 0 \nQ 17.828125 0 11.671875 7.65625 \nQ 5.515625 15.328125 5.515625 27.984375 \nQ 5.515625 40.671875 11.671875 48.328125 \nQ 17.828125 56 27.875 56 \nQ 33.9375 56 38.28125 53.609375 \nQ 42.625 51.21875 45.40625 46.390625 \nL 45.40625 54.6875 \nL 54.390625 54.6875 \nz\n\" id=\"DejaVuSans-103\"/>\n     <path d=\"M 30.609375 48.390625 \nQ 23.390625 48.390625 19.1875 42.75 \nQ 14.984375 37.109375 14.984375 27.296875 \nQ 14.984375 17.484375 19.15625 11.84375 \nQ 23.34375 6.203125 30.609375 6.203125 \nQ 37.796875 6.203125 41.984375 11.859375 \nQ 46.1875 17.53125 46.1875 27.296875 \nQ 46.1875 37.015625 41.984375 42.703125 \nQ 37.796875 48.390625 30.609375 48.390625 \nz\nM 30.609375 56 \nQ 42.328125 56 49.015625 48.375 \nQ 55.71875 40.765625 55.71875 27.296875 \nQ 55.71875 13.875 49.015625 6.21875 \nQ 42.328125 -1.421875 30.609375 -1.421875 \nQ 18.84375 -1.421875 12.171875 6.21875 \nQ 5.515625 13.875 5.515625 27.296875 \nQ 5.515625 40.765625 12.171875 48.375 \nQ 18.84375 56 30.609375 56 \nz\n\" id=\"DejaVuSans-111\"/>\n     <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n    </defs>\n    <g transform=\"translate(251.916406 255.619219)scale(0.1 -0.1)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-111\"/>\n     <use x=\"124.658203\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"185.9375\" xlink:href=\"#DejaVuSans-108\"/>\n    </g>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"pdab54f4306\">\n   <rect height=\"271.8\" width=\"279\" x=\"30.103125\" y=\"10.999219\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "import numpy as np \n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "fig = plt.figure(figsize=(5,5))\n",
    "ax = plt.gca()\n",
    "\n",
    "plt.plot([1,1],[0,1],color='red',linewidth=2)\n",
    "plt.plot([1,2],[2,2],color='red',linewidth=2)\n",
    "plt.plot([2,2],[2,1],color='red',linewidth=2)\n",
    "plt.plot([2,3],[1,1],color='red',linewidth=2)\n",
    "\n",
    "plt.text(0.5,2.5,\"S0\",size=14,ha='center')\n",
    "plt.text(1.5,2.5,\"S1\",size=14,ha='center')\n",
    "plt.text(2.5,2.5,\"S2\",size=14,ha='center')\n",
    "plt.text(0.5,1.5,\"S3\",size=14,ha='center')\n",
    "plt.text(1.5,1.5,\"S4\",size=14,ha='center')\n",
    "plt.text(2.5,1.5,\"S5\",size=14,ha='center')\n",
    "plt.text(0.5,0.5,\"S6\",size=14,ha='center')\n",
    "plt.text(1.5,0.5,\"S7\",size=14,ha='center')\n",
    "plt.text(2.5,0.5,\"S8\",size=14,ha='center')\n",
    "\n",
    "plt.text(0.5,2.3,\"start\",ha='center')\n",
    "plt.text(2.5,0.3,\"goal\",ha='center')\n",
    "ax.set_xlim(0,3)\n",
    "ax.set_ylim(0,3)\n",
    "\n",
    "plt.tick_params(axis='both',which='both',bottom='off',top='off',labelbottom='off',right='off',\n",
    "left='off',labelleft='off')\n",
    "line, = plt.plot([0.5],[2.5],marker='o',color='g',markersize='60')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 列表示 ↑，→，↓，←的方向\n",
    "theta_0 = np.array([[np.nan,1,1,np.nan],#S0\n",
    "                    [np.nan,1,np.nan,1],#S1\n",
    "                    [np.nan,np.nan,1,1],#S2\n",
    "                    [1,1,1,np.nan],#S3\n",
    "                    [np.nan,np.nan,1,1],#S4\n",
    "                    [1,np.nan,np.nan,np.nan],#S5\n",
    "                    [1,np.nan,np.nan,np.nan],#S6\n",
    "                    [1,1,np.nan,np.nan],#S7\n",
    "                    ]) #s8为目标，没有策略"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "[a,b] = theta_0.shape\n",
    "Q = np.random.rand(a,b)*theta_0 # 墙壁方向对应的随机值为np.nan\n"
   ]
  },
  {
   "source": [
    "实现如何根据各时刻的动作a的动作价值函数Q来求取策略。最简单的方法是采用Q值最大的动作（这称为贪婪法）。但是，如果在没有求得正确的Q值时采用这种方法，会导致根据随机生成的动作价值的初始值确定动作，其后可能无法很好地学习（例如，从初始的S0位置每次向右移动）。因此，我们将以一定的概率ε随机行动，在剩下的1-ε概率下采用动作价值Q最大的行动。这种方法称为ε-贪婪法。随着试验次数（回合数或轮数）的增加，ε值会渐渐减小。像这样的价值迭代强化学习中，必须综合地使用当前动作价值函数的最大值来采取确定行动（利用）以及随机行动（探索），这一方法称为“探索和利用的权衡”。"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[[0.         0.5        0.5        0.        ]\n [0.         0.5        0.         0.5       ]\n [0.         0.         0.5        0.5       ]\n [0.33333333 0.33333333 0.33333333 0.        ]\n [0.         0.         0.5        0.5       ]\n [1.         0.         0.         0.        ]\n [1.         0.         0.         0.        ]\n [0.5        0.5        0.         0.        ]]\n"
     ]
    }
   ],
   "source": [
    "def simple_convert_into_pi_from_theta(theta):\n",
    "    [m,n] = theta.shape\n",
    "    pi = np.zeros((m,n))\n",
    "    for i in range(0,m):\n",
    "        pi[i,:] = theta[i,:] / np.nansum(theta[i,:])\n",
    "        pi = np.nan_to_num(pi)\n",
    "    return pi\n",
    "pi_0 = simple_convert_into_pi_from_theta(theta=theta_0)\n",
    "print(pi_0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实现ε贪婪法\n",
    "def get_action(s, Q, epsilon, pi_0):\n",
    "    direction = [\"up\",\"right\",\"down\",\"left\"]\n",
    "    if np.random.rand() < epsilon:\n",
    "        next_direction = np.random.choice(direction,p = pi_0[s,:])\n",
    "    else:\n",
    "        next_direction = direction[np.nanargmax(Q[s,:])]\n",
    "    # 为动作加上索引\n",
    "    if next_direction == \"up\":\n",
    "        action = 0\n",
    "    elif next_direction == \"right\":\n",
    "        action = 1\n",
    "    elif next_direction == \"down\":\n",
    "        action = 2\n",
    "    elif next_direction == \"left\":\n",
    "        action = 3\n",
    "    return action\n",
    "\n",
    "def get_s_next(s, a, Q, epsilon, pi_0):\n",
    "    direction = [\"up\",\"right\",\"down\",\"left\"]\n",
    "    next_direction = direction[a]\n",
    "    if next_direction == \"up\":\n",
    "        s_next = s - 3\n",
    "    elif next_direction == \"right\":\n",
    "        s_next = s + 1\n",
    "    elif next_direction == \"down\":\n",
    "        s_next = s + 3\n",
    "    elif next_direction == \"left\":\n",
    "        s_next = s - 1\n",
    "    return s_next    "
   ]
  },
  {
   "source": [
    "使用Sarsa算法更新动作价值函数Q(s,a)\n",
    "如果获得动作价值函数Q(s,a)的正确值，则贝尔曼方程Q(st,at)=Rt+1+γQ(st+1,at+1)所表示的关系成立。然而，由于在学习过程中尚未正确求得动作价值函数，因此该等式是不成立的。此时，上述等式两边之间的差Rt+1+γQ(st+1,at+1)-Q(st,at)是TD误差（时间差，Temporal Differenceerror）。如果此时TD误差为0，则表示已正确学习到了动作价值函数。Q的更新公式是：Q(st,at)=Q(st,at)+η*(Rt+1+γQ(st+1,at+1)-Q(st,at)其中η是学习率，η后面是TD误差。遵循此更新公式的算法称为Sarsa。这里总共使用了五个变量值，即当前的s和a、即时奖励R以及下一步的s和a。"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 基于Sarsa更新动作价值函数Q\n",
    "def Sarsa(s,a,r,s_next,a_next,Q,eta,gamma):\n",
    "    if s_next == 8: # 到达目标\n",
    "        Q[s,a] = Q[s,a] + eta*(r - Q[s,a])\n",
    "    else:\n",
    "        Q[s,a] = Q[s,a] + eta*(r + gamma * (Q[s_next,a_next]) - Q[s,a])\n",
    "    return Q\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义基于Sarsa求解迷宫问题的函数，输出状态,动作的历史记录以及更新后的Q\n",
    "# 与策略梯度法不同，价值迭代法是在每一步更新价值函数，而不是每一轮都试验运行结束后\n",
    "def goal_maze_ret_s_a_Q(Q, epsilon,eta,gamma,pi):\n",
    "    s = 0\n",
    "    a = a_next = get_action(s, Q, epsilon, pi)\n",
    "    s_a_history = [[0,np.nan]] # 记录智能体的移动序列\n",
    "    while True:\n",
    "        a = a_next\n",
    "        s_a_history[-1][1] = a\n",
    "        s_next = get_s_next(s, a, Q, epsilon, pi)\n",
    "        s_a_history.append([s_next,np.nan])\n",
    "        # 给予奖励，获取下一个动作\n",
    "        if(s_next == 8):\n",
    "            r = 1\n",
    "            a_next= np.nan\n",
    "        else:\n",
    "            r = 0\n",
    "            a_next = get_action(s_next,Q, epsilon,pi)\n",
    "        # 更新价值函数\n",
    "        Q = Sarsa(s, a, r, s_next, a_next, Q, eta, gamma)\n",
    "        if s_next == 8:\n",
    "            break\n",
    "        else:\n",
    "            s = s_next\n",
    "    return [s_a_history, Q]\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "当前的回合数:1\n价值状态的变化:[1.27100730e+00 3.56688319e-01 2.40230765e+00 1.90000730e-01\n 1.10000000e+00 8.01380596e-01 3.44800133e-01 4.44089210e-16]\n求解迷宫问题需要的步数:4\n当前的回合数:2\n价值状态的变化:[6.64647742e-07 0.00000000e+00 0.00000000e+00 7.30382135e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:3\n价值状态的变化:[6.04756407e-07 0.00000000e+00 0.00000000e+00 6.57343922e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:4\n价值状态的变化:[5.50196862e-07 0.00000000e+00 0.00000000e+00 5.91609529e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:5\n价值状态的变化:[5.00501661e-07 0.00000000e+00 0.00000000e+00 5.32448576e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:6\n价值状态的变化:[4.55243533e-07 0.00000000e+00 0.00000000e+00 4.79203718e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:7\n价值状态的变化:[4.14032013e-07 0.00000000e+00 0.00000000e+00 4.31283347e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:8\n价值状态的变化:[3.76510362e-07 0.00000000e+00 0.00000000e+00 3.88155011e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:9\n价值状态的变化:[3.42352721e-07 0.00000000e+00 0.00000000e+00 3.49339511e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n当前的回合数:10\n价值状态的变化:[3.11261504e-07 0.00000000e+00 0.00000000e+00 3.14405559e-08\n 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n求解迷宫问题需要的步数:4\n"
     ]
    }
   ],
   "source": [
    "eta = 0.1 # 学习率\n",
    "gamma = 0.9 # 时间折扣率\n",
    "epsilon = 0.5 # 贪婪系数\n",
    "v = np.nanargmax(Q, axis=1) #根据状态求价值的最大\n",
    "is_continue = True\n",
    "episode = 1\n",
    "\n",
    "while is_continue:\n",
    "    print(f\"当前的回合数:{str(episode)}\")\n",
    "    epsilon = epsilon / 2\n",
    "    [s_a_history,Q] = goal_maze_ret_s_a_Q(Q, epsilon,eta,gamma,pi_0)\n",
    "    new_v = np.nanmax(Q,axis=1)\n",
    "    print(f\"价值状态的变化:{np.abs(new_v - v)}\")\n",
    "    v = new_v\n",
    "    print(f\"求解迷宫问题需要的步数:{str(len(s_a_history)-1)}\")\n",
    "    episode = episode + 1\n",
    "    if episode > 10:\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ],
      "text/html": "\n<link rel=\"stylesheet\"\nhref=\"https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/\ncss/font-awesome.min.css\">\n<script language=\"javascript\">\n  function isInternetExplorer() {\n    ua = navigator.userAgent;\n    /* MSIE used to detect old browsers and Trident used to newer ones*/\n    return ua.indexOf(\"MSIE \") > -1 || ua.indexOf(\"Trident/\") > -1;\n  }\n\n  /* Define the Animation class */\n  function Animation(frames, img_id, slider_id, interval, loop_select_id){\n    this.img_id = img_id;\n    this.slider_id = slider_id;\n    this.loop_select_id = loop_select_id;\n    this.interval = interval;\n    this.current_frame = 0;\n    this.direction = 0;\n    this.timer = null;\n    this.frames = new Array(frames.length);\n\n    for (var i=0; i<frames.length; i++)\n    {\n     this.frames[i] = new Image();\n     this.frames[i].src = frames[i];\n    }\n    var slider = document.getElementById(this.slider_id);\n    slider.max = this.frames.length - 1;\n    if (isInternetExplorer()) {\n        // switch from oninput to onchange because IE <= 11 does not conform\n        // with W3C specification. It ignores oninput and onchange behaves\n        // like oninput. In contrast, Mircosoft Edge behaves correctly.\n        slider.setAttribute('onchange', slider.getAttribute('oninput'));\n        slider.setAttribute('oninput', null);\n    }\n    this.set_frame(this.current_frame);\n  }\n\n  Animation.prototype.get_loop_state = function(){\n    var button_group = document[this.loop_select_id].state;\n    for (var i = 0; i < button_group.length; i++) {\n        var button = button_group[i];\n        if (button.checked) {\n            return button.value;\n        }\n    }\n    return undefined;\n  }\n\n  Animation.prototype.set_frame = function(frame){\n    this.current_frame = frame;\n    document.getElementById(this.img_id).src =\n            this.frames[this.current_frame].src;\n    document.getElementById(this.slider_id).value = this.current_frame;\n  }\n\n  Animation.prototype.next_frame = function()\n  {\n    this.set_frame(Math.min(this.frames.length - 1, this.current_frame + 1));\n  }\n\n  Animation.prototype.previous_frame = function()\n  {\n    this.set_frame(Math.max(0, this.current_frame - 1));\n  }\n\n  Animation.prototype.first_frame = function()\n  {\n    this.set_frame(0);\n  }\n\n  Animation.prototype.last_frame = function()\n  {\n    this.set_frame(this.frames.length - 1);\n  }\n\n  Animation.prototype.slower = function()\n  {\n    this.interval /= 0.7;\n    if(this.direction > 0){this.play_animation();}\n    else if(this.direction < 0){this.reverse_animation();}\n  }\n\n  Animation.prototype.faster = function()\n  {\n    this.interval *= 0.7;\n    if(this.direction > 0){this.play_animation();}\n    else if(this.direction < 0){this.reverse_animation();}\n  }\n\n  Animation.prototype.anim_step_forward = function()\n  {\n    this.current_frame += 1;\n    if(this.current_frame < this.frames.length){\n      this.set_frame(this.current_frame);\n    }else{\n      var loop_state = this.get_loop_state();\n      if(loop_state == \"loop\"){\n        this.first_frame();\n      }else if(loop_state == \"reflect\"){\n        this.last_frame();\n        this.reverse_animation();\n      }else{\n        this.pause_animation();\n        this.last_frame();\n      }\n    }\n  }\n\n  Animation.prototype.anim_step_reverse = function()\n  {\n    this.current_frame -= 1;\n    if(this.current_frame >= 0){\n      this.set_frame(this.current_frame);\n    }else{\n      var loop_state = this.get_loop_state();\n      if(loop_state == \"loop\"){\n        this.last_frame();\n      }else if(loop_state == \"reflect\"){\n        this.first_frame();\n        this.play_animation();\n      }else{\n        this.pause_animation();\n        this.first_frame();\n      }\n    }\n  }\n\n  Animation.prototype.pause_animation = function()\n  {\n    this.direction = 0;\n    if (this.timer){\n      clearInterval(this.timer);\n      this.timer = null;\n    }\n  }\n\n  Animation.prototype.play_animation = function()\n  {\n    this.pause_animation();\n    this.direction = 1;\n    var t = this;\n    if (!this.timer) this.timer = setInterval(function() {\n        t.anim_step_forward();\n    }, this.interval);\n  }\n\n  Animation.prototype.reverse_animation = function()\n  {\n    this.pause_animation();\n    this.direction = -1;\n    var t = this;\n    if (!this.timer) this.timer = setInterval(function() {\n        t.anim_step_reverse();\n    }, this.interval);\n  }\n</script>\n\n<style>\n.animation {\n    display: inline-block;\n    text-align: center;\n}\ninput[type=range].anim-slider {\n    width: 374px;\n    margin-left: auto;\n    margin-right: auto;\n}\n.anim-buttons {\n    margin: 8px 0px;\n}\n.anim-buttons button {\n    padding: 0;\n    width: 36px;\n}\n.anim-state label {\n    margin-right: 8px;\n}\n.anim-state input {\n    margin: 0;\n    vertical-align: middle;\n}\n</style>\n\n<div class=\"animation\">\n  <img id=\"_anim_imgd40b46deba114d808546adc88cd4ca7e\">\n  <div class=\"anim-controls\">\n    <input id=\"_anim_sliderd40b46deba114d808546adc88cd4ca7e\" type=\"range\" class=\"anim-slider\"\n           name=\"points\" min=\"0\" max=\"1\" step=\"1\" value=\"0\"\n           oninput=\"animd40b46deba114d808546adc88cd4ca7e.set_frame(parseInt(this.value));\"></input>\n    <div class=\"anim-buttons\">\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.slower()\"><i class=\"fa fa-minus\"></i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.first_frame()\"><i class=\"fa fa-fast-backward\">\n          </i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.previous_frame()\">\n          <i class=\"fa fa-step-backward\"></i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.reverse_animation()\">\n          <i class=\"fa fa-play fa-flip-horizontal\"></i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.pause_animation()\"><i class=\"fa fa-pause\">\n          </i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.play_animation()\"><i class=\"fa fa-play\"></i>\n          </button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.next_frame()\"><i class=\"fa fa-step-forward\">\n          </i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.last_frame()\"><i class=\"fa fa-fast-forward\">\n          </i></button>\n      <button onclick=\"animd40b46deba114d808546adc88cd4ca7e.faster()\"><i class=\"fa fa-plus\"></i></button>\n    </div>\n    <form action=\"#n\" name=\"_anim_loop_selectd40b46deba114d808546adc88cd4ca7e\" class=\"anim-state\">\n      <input type=\"radio\" name=\"state\" value=\"once\" id=\"_anim_radio1_d40b46deba114d808546adc88cd4ca7e\"\n             checked>\n      <label for=\"_anim_radio1_d40b46deba114d808546adc88cd4ca7e\">Once</label>\n      <input type=\"radio\" name=\"state\" value=\"loop\" id=\"_anim_radio2_d40b46deba114d808546adc88cd4ca7e\"\n             >\n      <label for=\"_anim_radio2_d40b46deba114d808546adc88cd4ca7e\">Loop</label>\n      <input type=\"radio\" name=\"state\" value=\"reflect\" id=\"_anim_radio3_d40b46deba114d808546adc88cd4ca7e\"\n             >\n      <label for=\"_anim_radio3_d40b46deba114d808546adc88cd4ca7e\">Reflect</label>\n    </form>\n  </div>\n</div>\n\n\n<script language=\"javascript\">\n  /* Instantiate the Animation class. */\n  /* The IDs given should match those used in the template above. */\n  (function() {\n    var img_id = \"_anim_imgd40b46deba114d808546adc88cd4ca7e\";\n    var slider_id = \"_anim_sliderd40b46deba114d808546adc88cd4ca7e\";\n    var loop_select_id = \"_anim_loop_selectd40b46deba114d808546adc88cd4ca7e\";\n    var frames = new Array(5);\n    \n  frames[0] = \"\\\n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\\\nQmCC\\\n\"\n  frames[1] = \"\\\n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\\\n\"\n  frames[2] = \"\\\n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\\\n\"\n  frames[3] = \"\\\n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\\\n\"\n  frames[4] = \"\\\n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\\\n05zXwsTxbimTx9zn85GamsrMmTOZPHlyo+WmjntzuU0e8zpdu3blrrvuYuvWrQ2eN2XMjS1ofz1N\\\nvCW5T5w4Uf8bOi8vj5qaGnr06OFE3Kti4ni3lKljblkWc+fOZciQISxcuLDJdUwc95bkNnXMS0pK\\\nKC0tBeD8+fN88MEHDB48uME6poy5sVMc/nqaeEtyb9q0iTVr1uB2uwkJCWHjxo1GvGWdPn0627Zt\\\n49SpU8TExLBkyRJ8Ph9g7njXaS67qWO+Y8cONmzYwM0330xiYiIAS5cu5ejRo4C5496S3KaOeXFx\\\nMbNnz6a6upqamhqmTZvG/fffb2S36ExCERFDGTvFISLS0amgRUQMpYIWETGUClpExFAqaBERQ6mg\\\nRUQMpYIWETGUClpExFAqaBERQ6mgRUQMpYIWETGUClpExFAqaBERQ6mgRUQMpYIWETGUClpExFAq\\\naBERQ6mgRUQMpYIWETGUClpExFAqaBERQ6mgRUQMpYIWETGUClpExFAqaBERQ6mgRUQMpYIWETGU\\\nClpExFAqaBERQ/1/5iowDAhXngkAAAAASUVORK5CYII=\\\n\"\n\n\n    /* set a timeout to make sure all the above elements are created before\n       the object is initialized. */\n    setTimeout(function() {\n        animd40b46deba114d808546adc88cd4ca7e = new Animation(frames, img_id, slider_id, 500.0,\n                                 loop_select_id);\n    }, 0);\n  })()\n</script>\n"
     },
     "metadata": {},
     "execution_count": 23
    }
   ],
   "source": [
    "from matplotlib import animation \n",
    "from IPython.display import HTML\n",
    "\n",
    "def init():\n",
    "    line.set_data([],[])\n",
    "    return (line,)\n",
    "def animate(i):\n",
    "    state = s_a_history[i][0]\n",
    "    x = (state % 3) + 0.5\n",
    "    y = 2.5 - int(state/3)\n",
    "    line.set_data(x,y)\n",
    "    return (line,)\n",
    "anim = animation.FuncAnimation(fig,animate,init_func=init,frames=len(s_a_history),interval=500,repeat=False)\n",
    "HTML(anim.to_jshtml())"
   ]
  },
  {
   "source": [
    "Q学习，这是一种价值迭代算法。与Sarsa的不同之处在于其动作价值函数的更新公式不同。在Sarsa的情况下，动作值函数Q的更新公式是Q(st,at)=Q(st,at)+η*(Rt+1+γQ(st+1,at+1)-Q(st,at))\n",
    "而Q学习的更新公式如下所示：\n",
    "\n",
    "在Sarsa的情况下，在更新时需要求取下一步动作at+1，并将其用于更新。另一方面，Q学习使用在状态st+1下动作价值函数值中的最大值来进行更新。由于Sarsa使用下一个动作at+1来更新动作价值函数Q，因此Sarsa算法的特征之一是Q的更新依赖于求取at+1的策略，这样的特征称为策略依赖型（ON）特征。在Q学习中，动作价值函数Q的更新不依赖于动作的决定方法（策略）。这种特征称为策略关闭型（OFF）特征。由于ε-贪婪法产生的随机性不用于更新公式值，因此其动作价值函数的收敛快于Sarsa。"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "output_type": "error",
     "ename": "SyntaxError",
     "evalue": "unmatched ')' (<ipython-input-25-dc33ae049468>, line 6)",
     "traceback": [
      "\u001b[0;36m  File \u001b[0;32m\"<ipython-input-25-dc33ae049468>\"\u001b[0;36m, line \u001b[0;32m6\u001b[0m\n\u001b[0;31m    Q[s,a] = Q[s,a] + eta*np.nanmax(Q[s_next,:]) - Q[s,a])\u001b[0m\n\u001b[0m                                                         ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unmatched ')'\n"
     ]
    }
   ],
   "source": [
    "# 基于Q_learning更新动作价值函数Q\n",
    "def Q_learning(s,a,r,s_next,Q,eta,gamma):\n",
    "    if s_next == 8: # 到达目标\n",
    "        Q[s,a] = Q[s,a] + eta*(r - Q[s,a])\n",
    "    else:\n",
    "        Q[s,a] = Q[s,a] + eta*np.nanmax(Q[s_next,:]) - Q[s,a]\n",
    "    return Q\n",
    "def goal_maze_ret_s_a_Q(Q, epsilon,eta,gamma,pi):\n",
    "    s = 0\n",
    "    a = a_next = get_action(s, Q, epsilon, pi)\n",
    "    s_a_history = [[0,np.nan]] # 记录智能体的移动序列\n",
    "    while True:\n",
    "        a = a_next\n",
    "        s_a_history[-1][1] = a\n",
    "        s_next = get_s_next(s, a, Q, epsilon, pi)\n",
    "        s_a_history.append([s_next,np.nan])\n",
    "        # 给予奖励，获取下一个动作\n",
    "        if(s_next == 8):\n",
    "            r = 1\n",
    "            a_next= np.nan\n",
    "        else:\n",
    "            r = 0\n",
    "            a_next = get_action(s_next,Q, epsilon,pi)\n",
    "        # 更新价值函数\n",
    "        Q = Q_learning(s, a, r, s_next, Q, eta, gamma)\n",
    "        if s_next == 8:\n",
    "            break\n",
    "        else:\n",
    "            s = s_next\n",
    "    return [s_a_history, Q]\n",
    "\n",
    "eta = 0.1 # 学习率\n",
    "gamma = 0.9 # 时间折扣率\n",
    "epsilon = 0.5 # 贪婪系数\n",
    "v = np.nanargmax(Q, axis=1) #根据状态求价值的最大\n",
    "is_continue = True\n",
    "episode = 1\n",
    "V = [] # 存放每回合的状态价值\n",
    "V.append(np.nanmax(Q,axis=1))\n",
    "while is_continue:\n",
    "    print(f\"当前的回合数:{str(episode)}\")\n",
    "    epsilon = epsilon / 2\n",
    "    [s_a_history,Q] = goal_maze_ret_s_a_Q(Q, epsilon,eta,gamma,pi_0)\n",
    "    new_v = np.nanmax(Q,axis=1)\n",
    "    print(f\"价值状态的变化:{np.abs(new_v - v)}\")\n",
    "    v = new_v\n",
    "    V.append(new_v)\n",
    "    print(f\"求解迷宫问题需要的步数:{str(len(s_a_history)-1)}\")\n",
    "    episode = episode + 1\n",
    "    if episode > 10:\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ]
}